今天我們要介紹的是 AWS 一個很夯的無伺服器應用 AWS Lambda
不過在介紹 AWS Lambda 之前
我們需要先了解一下甚麼是無伺服器應用
無伺服器應用並非不使用伺服器
而是提供使用者編寫程式碼方法
開發者根據執行環境需求定義需要的資源並封裝程式應用
交由系統供應商自行配置機械的一種方式
開發者不需要再擔心基礎設施的建設
比起傳統架構
雲端提供的無伺服器架構
更容易達到系統規範的 SLA 和 SLO
而且對於資源地擴展也更加快速
虛擬化的架構下
我們需要定期維護虛擬機
為虛擬機上 Patch、升級
而無伺服器應用只需要專注在商業應用的開發
以及應用的環境版本升級即可
傳統的架構通常需要一些基本的基礎設施
無伺服器應用通常只需要負擔執行階段的費用
而且是按需收費
因此不需要額外耗費心力思考 HA 該如何降低成本
AWS Lambda 和 Azure Function 都是有名的雲端無伺服器應用
AWS Lambda 除了 Java、Python、C# 這些常見的程式語言以外
也支援 Docker 的形式
只要撰寫方式符合規範
都可以正常執行於 AWS 的環境中
AWS Lambda 是一項運算服務
可讓您執行程式碼
無需佈建或管理伺服器
只需要使用 AWS Lambda 支援的程式語言進行撰寫擊佈署
AWS 就會在高可用性的運算基礎設施上執行您的程式碼
並執行所有運算資源的管理
官方羅列以下幾種使用情境
說了這麼多感覺好像甚麼都可以做
但是又不太確定可以實際應用在甚麼情境
大致上可以理解成當有些業務是可被獨立切割
像是資料蒐集或是 SNS 轉發通知
就很適合轉介到 AWS Lambda 進行處理
AWS Lambda 支援 Node.js、TypeScript、Python、Ruby、Java、Go、C#、PowerShell、Rust 等程式語言進行開發
當然也支援容器應用
做為最經典的無伺服器應用
AWS Lambda 除了可單獨執行以外
亦可整合 AWS 大部分的應用做為資料整理的轉介站
參考資料: